
@ Title: Maximo de un Numero                        Filename: max.s
@ Author: Velasco Calixto Jose Armando              Date: 7-Marzo-17
@ Description:
@ Input: --
@ Output: Numero Maximo de una lista de numeros

######## Code Segment  ##################################################
 
 .section        .data
 
 numbers:                               @ Números usados.
 .long 3,67,34,222,45,75,54,34,44,33,22,11,66,0
 
 .globl  _start
 
 _start:
 
ldr %r1,=numbers                        @ Coloca r, para iniciar la dirección de 'números.
ldr %r3, [%r1]                          @ Carga r3 con el primer número
mov %r0, %r3                            @ El número más concurrente debe de ser el más largo

loop:
   cmp %r3, $0                          @ Revisa si r3 espera a cero.
   beq exit                             @ Si no salir.
   ldr %r3, [%r1,#4]!                   @ Carga el siguiente objeto en r3.
   cmp %r3, %r0                         @ Compara r0 con r3.
   ble loop                             @ Inicia la búsqueda si r3<=r0.
   mov %r0, %r3                         @ Pon otro elemento en r3 adentro de r0.
   bal loop                             @ Repite lo anterior.
   
   exit:                                @ El valor más largo esta en r0.
   mov %r7, $1                          @ Prepara la salida.
   svc $0                               @ Despierta el kernel.
   .end                                 @ Fin del código.
   
   ####### Data Segment ####################################################
  
  exit:                         @ EL VALOR MAS LARGO ESTA EN r0
  mov %r7, $1                   @ PREPARA LA SALIDA
  scv $0                        @ DESPIERTA EL KERNEL
  .end                          @ MARCA EL FINAL DEL CODIGO
